package com.aaa.dang.modules.login.service;

import com.aaa.dang.common.entity.Employee;
import com.aaa.dang.common.util.ResultModel;

import java.util.Set;

/**
 * 登录业务接口
 *
 * @author Dadazhao
 * @date 2018/12/21
 */
public interface ILoginService {
    /**
     * 通过用户登录名获得用户信息
     * @param username 用户登录名
     * @return 员工信息
     */
    public Employee getEmployeeByName(String username);

    /**
     * 获得用户菜单
     * @return 结果
     */
    ResultModel getMenu();

    /**
     * 获得树形菜单
     * @return 树状list<map>
     */
    ResultModel getMenuTree();

    /**
     * 获得登录的用户名
     * @return 用户名
     */
    String getEmployeeName();

    /**
     * 获得员工拥有的角色
     * @param userName 登录账号
     * @return 拥有的角色
     */
    Set<String> getRolesByUserName(String userName);

    /**
     * 通过员工登录名获得拥有的权限
     * @param userName 登录账号
     * @return 拥有的权限
     */
    Set<String> getPermissionsByUserName(String userName);

    /**
     * 修改员工的信息
     * @param emp
     * @return code 0 成功 1 失败
     */
    ResultModel updateEmployee(Employee emp);

    /**
     * 获得当前登录的员工信息
     * @return 员工信息
     */
    public Employee getLoginEmployeeInfo();
}
